<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <title>03_原型对象-基本使用</title>
    </head>
    <body>
        <script>
            // （1）任何的函数对象（咱们一般研究的是构造函数）都有一个属性叫做prototype
            // prototype属性的值是
            // prototype: 
            //    {
            //      constructor: ƒ Person()
            //      [[Prototype]]: Object
            //   }
            function Person(){

            }
            console.dir(Person);
            // （2）通过函数对象（构造函数） 创建(实例化)出来的对象 都有一个属性
            // 叫做__proto__

            // chrome 浏览器 现在将__proto__ 修改为[[prototype]]
            // firefox浏览器 现在将__proto__ 修改为<prototype>
            // ie     浏览器 现在没变

            // 我们开发的时候无论什么浏览器依然使用__proto__
            // 因为chrome和firefox依然还要使用__proto__  因为不符合命名规范

            // __proto__:
            // {
                // constructor: ƒ Person()
                // [[Prototype]]: Object
                // }
            var p = new Person();
            console.log(p);

            // （3）函数对象的prototype和通过这个函数对象创建（实例化）出来的
            // 对象的__proto__是同一个值
            console.log(Person.prototype === p.__proto__);
            

        </script>
    </body>
</html>